
// pages/edit/index.js
const { todoManager, tagManager, reminderManager } = require('../../utils/cloud')
const { formatDateTime, validateDateTime } = require('../../utils/dateHelper')
const { toast, dialog, nav, errorHandler } = require('../../utils/uiHelper')

const app = getApp()

Page({
  data: {
    // ... 其他原有数据 ...
  },

  // ... 其他原有方法 ...

  // 表单提交
  async onSubmit() {
          try {
              // 表单验证
              if (!this.validateForm()) return

              this.setData({
                  isSubmitting: true
              })
              toast.loading(this.data.isEdit ? '保存中...' : '创建中...')

              // 请求提醒订阅权限
              await this.requestReminderSubscription()

              const {
                  title,
                  content,
                  reminderDate,
                  reminderTime,
                  tags
              } = this.data.formData

              // 组合日期和时间
              const reminderDateTime = this.formatReminderDateTime(reminderDate, reminderTime)

              // 验证提醒时间是否早于当前时间
              if (new Date(reminderDateTime) < new Date()) {
                  toast.info('提醒时间不能早于当前时间')
                  return
              }

              const todoData = {
                  title: title.trim(),
                  content: content.trim(),
                  reminderTime: reminderDateTime,
                  tags,
                  status: false
              }

              let result
              if (this.data.isEdit) {
                  // 更新已有待办事项
                  result = await todoManager.updateTodo({
                      _id: this.data.todoId,
                      ...todoData
                  })
              } else {
                  // 创建新的待办事项
                  result = await todoManager.createTodo(todoData)
              }

              if (result.code === 0) {
                  toast.success(this.data.isEdit ? '保存成功' : '创建成功')

                  // 获取当前页面栈
                  const pages = getCurrentPages()
                  if (pages.length >= 2) {
                      const prevPage = pages[pages.length - 2]
                      if (prevPage.route === 'pages/index/index') {
                          prevPage.onLoad() // 强制刷新首页
                      }
                  }

                  // 提交成功后返回上一页
                  wx.navigateBack()
                  }
                  else {
                      throw new Error(result.msg)
              }
          } catch (err) {
              errorHandler.handle(err, this.data.isEdit ? '保存失败' : '创建失败')
          } finally {
              this.setData({
                  isSubmitting: false
              })
              toast.hideLoading()
          }
      },

      onTitleInput: function (e) {
          this.setData({
              'formData.title': e.detail.value
          });
      },

  // ... 其他原有方法 ...
})